#ifndef PROB
#define PROB

#include "strategy/strategy.h"
#include <random>

class ProbStrategy : public Strategy
{
private:
    std::random_device rd;
    std::mt19937 engine;
    std::uniform_int_distribution<int> randomSign;

    unsigned int prevHand = 0;
    unsigned int currHand = 0;

    unsigned int history[3][3] = {
        {1,1,1},
        {1,1,1},
        {1,1,1}
    };

    unsigned int getSum(unsigned int hv);

public:
    ProbStrategy() : engine(rd()), randomSign(0, 2)
    {
    }
    
    Hand* nextHand() override;

    void study(bool win) override;
};

#endif // !PROB
